who، w و last در آزمونهای LPIC و RHCSA بسیار پرتکرارند.
فرض کن تو یه شرکت کار میکنی و میخوای بدونی چه کسانی الان توی ساختمان هستن، کی اومدن و چیکار میکنن. توی لینوکس، بررسی ورود به سیستم دقیقاً همینه: به مدیر سیستم کمک میکنه تا بفهمه چه کاربرانی لاگین کردن، کی لاگین کردن، و چقدر هستن. این جلسه بهت یاد میده چطور با سه فرمان مهم who، w و last این اطلاعات رو به دست بیاری!
یکی از وظایف مهم یک مدیر سیستم، نظارت بر ورود و خروج کاربران است. این کار به چند دلیل انجام میشود:
who
who سادهترین فرمان برای نمایش کاربرانی است که در حال حاضر به سیستم لاگین هستند. این فرمان اطلاعات زیر را نشان میدهد:
توضیح:
ya3in از طریق نشست گرافیکی (seat0) وارد شده است.root از طریق ترمینال مجازی (pts/0) با IP 192.168.1.100 وارد شده است.ali از طریق ترمینال مجازی (pts/1) با IP 192.168.1.101 وارد شده است.who| گزینه | کاربرد | مثال |
|---|---|---|
-b |
نمایش زمان آخرین راهاندازی سیستم (Boot) | who -b |
-r |
نمایش سطح اجرایی (Runlevel) فعلی | who -r |
-u |
نمایش زمان بیکاری (Idle) کاربران | who -u |
-H |
نمایش هدر (عنوان ستونها) | who -H |
--login |
نمایش کاربرانی که با لاگین کامل وارد شدهاند | who --login |
who -u زمان بیکاری کاربران را نشان میدهد. اگر کاربر فعال باشد، یک . (نقطه) نمایش داده میشود.
w
w یک فرمان پیشرفتهتر از who است که علاوه بر نمایش کاربران لاگینشده، اطلاعات زیر را نیز نشان میدهد:
توضیح ستونها:
w برای مدیران سیستم بسیار مفید است چون هم بار سیستم و هم فعالیت کاربران را در یک نگاه نشان میدهد.
w| گزینه | کاربرد | مثال |
|---|---|---|
-h |
عدم نمایش هدر (عنوان ستونها) | w -h |
-s |
نمایش مختصر (بدون JCPU، PCPU) | w -s |
-u |
نمایش زمان بیکاری به همراه PID | w -u |
username |
نمایش فقط اطلاعات یک کاربر خاص | w root |
w در واقع ترکیبی از دستورات who، uptime و ps است.
last
last یک فرمان تاریخی است که آخرین ورودهای کاربران را از فایل /var/log/wtmp نمایش میدهد. برخلاف who و w که فقط کاربران فعال را نشان میدهند، last تمام ورودها و خروجهای ثبتشده را نشان میدهد.
توضیح:
still logged in یعنی کاربر هماکنون لاگین است.reboot نشاندهندهٔ زمان راهاندازی مجدد سیستم است.down هستند، زمان خاموش شدن سیستم را نشان میدهند.last| گزینه | کاربرد | مثال |
|---|---|---|
-n N |
نمایش N خط آخر | last -n 5 |
-x |
نمایش اطلاعات کامل (شامل Shutdown و Runlevel) | last -x |
-i |
نمایش آدرس IP به جای نام هاست | last -i |
-d |
نمایش تاریخ به صورت خوانا | last -d |
username |
نمایش فقط ورودهای یک کاربر خاص | last ya3in |
reboot |
نمایش زمانهای راهاندازی مجدد | last reboot |
shutdown |
نمایش زمانهای خاموش شدن | last shutdown |
/var/log/wtmp اطلاعات ورود و خروج کاربران را ذخیره میکند. این فایل باینری است و فقط با last یا utmpdump قابل خواندن است.
| ویژگی | who |
w |
last |
|---|---|---|---|
| کاربران فعلی | ✅ بله | ✅ بله | ❌ خیر (تاریخی) |
| تاریخچه ورود | ❌ خیر | ❌ خیر | ✅ بله |
| بار سیستم (Load) | ❌ خیر | ✅ بله | ❌ خیر |
| فرمان در حال اجرا | ❌ خیر | ✅ بله | ❌ خیر |
| زمان بیکاری | با -u |
✅ بله | ❌ خیر |
| منبع اطلاعات | /var/run/utmp |
/var/run/utmp |
/var/log/wtmp |
who → نمایش کاربران فعال فعلی (ساده).w → نمایش کاربران فعال به همراه بار سیستم و فرمان در حال اجرا (پیشرفته).last → نمایش تاریخچهٔ کامل ورود و خروج کاربران.last -n 5 → نمایش ۵ ورود آخر.last username → نمایش ورودهای یک کاربر خاص.last reboot → نمایش زمانهای راهاندازی مجدد.یک اسکریپت بنویسید که:
who تعداد کاربران فعلی سیستم را بشمارد.w بار سیستم (Load Average) را نمایش دهد.last -n 3 سه ورود آخر را نمایش دهد.last reboot زمان آخرین راهاندازی مجدد را نمایش دهد.